home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 5
/
Amiga Tools 5.iso
/
grafik
/
3d & render tools
/
irit
/
man
/
man6
/
cinterp.6
< prev
next >
Wrap
Text File
|
1996-07-16
|
2KB
|
44 lines
.TH CINTERP
6 "IRIT Version 6.0"
.SH NAME
CINTERP
CurveType CINTERP( ListType PtList, NumericType Order, NumericType Size,
ConstantType Param, NumericType Periodic)
Computes a Bspline polynomial curve that interpolates or approximates
the list of points in PtList. The Bspline curve will have order
Order and Size control points, and will be periodic if
periodic is none zero. The knots will be spaced according to
Param which can be one of PARAM_UNIFORM, PARAM_CHORD or
PARAM_CENTRIP. The former prescribes a uniform knot sequence and the
latters specify knot spacing according to the chord
length and a square root of the chord length. A periodic curve will be
coerced to have PARAM_UNIFORM knot sequence.
Use of Periodic end conditions can create cases with degenerated
linear systems (determinant equal zero). Increase or decrease of the
Order of the Bspline by one will resolve the problem.
All points in PtList must be of type (E1-E5, P1-P5) control point,
or regular PointType. If Size is equal to the number of points in
PtList the resulting curve will interpolate the data set.
Otherwise, if Size is less than the number of points in PtList
the point data set will be least square approximated. In no time can Size
be lower than Order. Size of zero forces interpolation by
setting Size to the data set size.
All interior knots will be distinct preserving maximal continuity.
The resulting Bspline curve will have open end conditions.
Example:
pl = nil();
for ( x = 0, 1, 100,
snoc(point(cos(x / 5), sin(x / 5), x / 50 - 1), pl)
);
c = CINTERP( pl, 3, 21, PARAM_UNIFORM );
Samples a helical curve at 100 points and least square fit a quadratic
Bspline curve with 21 point to the data set. The curve will have a uniform
knot spacing.